From 76aae4fce586b400f5fe08df31497db19d624609 Mon Sep 17 00:00:00 2001
From: Jan Rybar <jrybar@redhat.com>
Date: Thu, 1 Aug 2019 06:46:10 +0000
Subject: [PATCH] pkttyagent: process stopped by SIGTTOU if run in background
 job


(cherry picked from commit 76aae4fce586b400f5fe08df31497db19d624609)
Signed-off-by: Jan Rybar <jrybar@redhat.com>
Signed-off-by: Adam Duskett <aduskett@gmail.com>
---
 src/programs/pkttyagent.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/programs/pkttyagent.c b/src/programs/pkttyagent.c
index 3c8d502..13879a2 100644
--- a/src/programs/pkttyagent.c
+++ b/src/programs/pkttyagent.c
@@ -264,6 +264,12 @@ main (int argc, char *argv[])
 
   memset (&sa, 0, sizeof (sa));
   sa.sa_handler = &tty_handler;
+/* If tty_handler() resets terminal while pkttyagent is run in background job,
+   the process gets stopped by SIGTTOU. This impacts systemctl, hence it must
+   be blocked for a while and then the process gets killed anyway.
+ */
+  sigemptyset(&sa.sa_mask);
+  sigaddset(&sa.sa_mask, SIGTTOU);
   sigaction (SIGTERM, &sa, &savesigterm);
   sigaction (SIGINT, &sa, &savesigint);
   sigaction (SIGTSTP, &sa, &savesigtstp);
-- 
2.24.1

